package subraSoft.fenix.gui.clientes;

import subraSoft.centaurus.gui.option.amb.CenABM;
import subraSoft.centaurus.gui.option.amb.CenABMSaveOrUpdateDialog;
import subraSoft.centaurus.gui.option.amb.CenPaginableTableModel;
import subraSoft.centaurus.model.cobj.CenDefaultCObj;
import subraSoft.fenix.model.cliente.cobj.FenClienteCObj;
import subraSoft.fenix.model.cliente.service.FenClienteService;
import subraSoft.fenix.model.cliente.service.impl.FenClienteServiceImpl;


@SuppressWarnings("serial")
public class FenABMClientes extends CenABM
{
	private FenClienteService service;
	
	public FenABMClientes()
	{
		super("ABM Clientes");
		service = new FenClienteServiceImpl(); 
	}
	
	@Override
	protected CenPaginableTableModel getModel() 
	{
		return new FenClientesPaginableTableModel(3);
	}

	@Override
	protected CenABMSaveOrUpdateDialog getSaveOrUpdateDialog(CenDefaultCObj cobj) 
	{
		return new FenClienteSaveOrUpdateDialog((FenClienteCObj)cobj);
	}
	
	@Override
	public String validarEliminacion(CenDefaultCObj cobj) 
	{
		boolean tieneRep = service.clientePoseeRepaciones((Long) cobj.getId());
		if(tieneRep)
			return "El cliente no puede eliminarse pues posee reparaciones asociadas";
		return null;
	}
	
	@SuppressWarnings("unchecked")
	@Override
	protected Class getTypePrimaryId() 
	{
		return Long.class;
	}
}
